package com.sparkseries.controller;

import com.sparkseries.domain.vo.SysPositionVO;
import com.sparkseries.dto.SysPositionDTO;
import com.sparkseries.service.SysPositionService;
import com.sparkseries.common.util.domain.Result;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

/**
 *岗位管理
 */
@RestController
@RequestMapping("/position")
public class SysPositionController {
    @Resource
    private SysPositionService service;

    /**
     * 创建岗位
     * @param positionsDTO 岗位信息列表
     * @return 操作结果
     */
    @PostMapping("/add")
    public Result<?> addPosition(@RequestBody ArrayList<SysPositionDTO> positionsDTO){
        return service.createPositions(positionsDTO);
    }

    /**
     * 获取所有岗位
     * @return 岗位信息列表
     */
    @GetMapping("/getAll")
    public Result<List<SysPositionVO>> queryAllPosition(){
        return service.getAllPosition();
    }

    /**
     * 删除岗位
     * @param ids 岗位ID列表
     * @return 操作结果
     */
    @DeleteMapping("/delete")
    public Result<?> deletePosition(@RequestBody()ArrayList<Integer> ids){
        return service.deletePositions(ids);
    }

    /**
     * 修改岗位
     * @param positionDTO 岗位信息
     * @return 操作结果
     */
    @PutMapping("/update")
    public Result<?> updatePosition(@RequestBody SysPositionDTO positionDTO){
        return service.updatePosition(positionDTO);
    }

    /**
     * 通过id获取岗位
     * @param id 岗位ID
     * @return 岗位信息
     */
    @GetMapping("{id}")
    public Result<SysPositionVO> getPositionById(@PathVariable("id")Integer id){
        return service.getPositionById(id);
    }

    /**
     * 条件查询岗位
     * @param sysPositionDTO 查询条件
     * @return 岗位信息列表
     */
    @GetMapping("/find")
    public Result<List<SysPositionVO>> findPositionByCondition(@RequestBody SysPositionDTO sysPositionDTO){
        return service.findPositionByCondition(sysPositionDTO);
    }
}
